﻿using System.Collections.Generic;
using NTTDATA.BEENChina.ResultCertification.EntryModel;

namespace NTTDATA.BEENChina.ResultCertification.DataStore
{
    public interface IEntryClient
    {
        /// <summary>
        /// 用户帐号 密码验证
        /// </summary>
        /// <param name="id"></param>
        /// <param name="pass"></param> 
        /// <returns></returns>
        bool VerfityOperator(string id, string pass);

        /// <summary>
        /// 加入客户端IP
        /// </summary>
        /// <param name="id"></param>
        /// <param name="ipAddress"></param>
        /// <returns></returns>
        int SetClient(string id, string ipAddress);

        /// <summary>
        /// 以做成 未录入的job 中的 oridreceivedate
        /// </summary>
        /// <returns></returns>
        List<string> GetDistinctOrderReceiveDates();
            
        /// <summary>
        /// 得到job列表
        /// </summary>
        /// <returns></returns>
        List<VerfityJobListItem> GetJobList(string orderReceiveDate, string categoryType);

        /// <summary>
        /// 下载job 根据 verfityCategoryID
        /// </summary>
        /// <param name="opid"></param>
        /// <param name="verfityItemID"></param>
        /// <param name="orderReceiveDate"> </param>
        /// <returns></returns>
        VerfityJobItem DownLoadJob(string opid, string verfityItemID, string orderReceiveDate);

        /// <summary>
        /// 下载job 根据 verfityItemID CategoryID
        /// </summary>
        /// <param name="opid"></param>
        /// <param name="verfityItemID"></param>
        /// <param name="categoryID"> </param>
        /// <param name="orderReceiveDate"> </param>
        /// <returns></returns>
        VerfityJobItem DownLoadJob(string opid, string verfityItemID, string categoryID,string orderReceiveDate);

        /// <summary>
        /// 上传job
        /// </summary>
        /// <param name="opid"></param>
        /// <param name="verfityJobItem"></param> 
        /// <returns></returns>
        int UpLoadJob(string opid, VerfityJobItem verfityJobItem);

        /// <summary>
        /// 取消job
        /// </summary>
        /// <param name="opid"></param> 
        /// <param name="verfityJobID"> </param>
        /// <param name="categoryID"> </param>
        /// <returns></returns>
        int CancelJob(string opid, string verfityJobID, string categoryID);
    }
}
